{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import numpy as np\n",
    "import datetime as dt\n",
    "\n",
    "\n",
    "from sklearn.cluster import KMeans\n",
    "from sklearn import preprocessing\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "#读取数据\n",
    "data = pd.read_csv('OnlineRetail.csv',encoding='ISO-8859-1')\n",
    "\n",
    "#数据清洗\n",
    "cleanData = data.copy()\n",
    "#cleanData.drop_duplicates(inplace=True)\n",
    "#cleanData = cleanData[(cleanData['Quantity'] > 0)&(cleanData['UnitPrice'] > 0) & (cleanData['CustomerID'].notnull())]\n",
    " \n",
    "#日期格式标准化\n",
    "cleanData['InvoiceDate'] = pd.to_datetime(cleanData['InvoiceDate'])\n",
    " \n",
    "#只使用UK的数据\n",
    "uk = cleanData.query(\"Country=='United Kingdom'\").reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "为了进一步提高留存，我们使用可以对用户进行细分，来制定不同的运营策略  \n",
    "RFM代表Recency-Frequency-Monetary Value\n",
    "低价值：不活跃的客户，不是很频繁的买家/访客，产生的收入为零，或者很低，或者是负的。  \n",
    "中等价值：经常使用我们的平台(但没有我们的高价值客户多)，活动非常频繁，产生中等收入。  \n",
    "高价值：我们不想失去的群体。产生的收入高，活动频繁。  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Recency**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "#创建一个user DataFrame \n",
    "user = pd.DataFrame(data['CustomerID'].unique())\n",
    "user.columns = ['CustomerID']\n",
    " \n",
    "#m每个顾客最近购买日期\n",
    "max_purchase = uk.groupby('CustomerID').InvoiceDate.max().reset_index()\n",
    "max_purchase.columns = ['CustomerID','MaxPurchaseDate']\n",
    "max_purchase\n",
    "\n",
    "max_purchase['Recency'] = (max_purchase['MaxPurchaseDate'].max() - max_purchase['MaxPurchaseDate']).dt.days\n",
    "\n",
    "#合并两个DataFrame\n",
    "user = pd.merge(user, max_purchase[['CustomerID','Recency']], on='CustomerID')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1b99d8ccd30>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.distplot(user['Recency'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Frequency**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CustomerID</th>\n",
       "      <th>Recency</th>\n",
       "      <th>Frequency</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>17850.0</td>\n",
       "      <td>301</td>\n",
       "      <td>312</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>13047.0</td>\n",
       "      <td>31</td>\n",
       "      <td>196</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>13748.0</td>\n",
       "      <td>95</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>15100.0</td>\n",
       "      <td>329</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>15291.0</td>\n",
       "      <td>25</td>\n",
       "      <td>109</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>14688.0</td>\n",
       "      <td>7</td>\n",
       "      <td>359</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>17809.0</td>\n",
       "      <td>15</td>\n",
       "      <td>64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>15311.0</td>\n",
       "      <td>0</td>\n",
       "      <td>2491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>14527.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>16098.0</td>\n",
       "      <td>87</td>\n",
       "      <td>67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>18074.0</td>\n",
       "      <td>373</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>17420.0</td>\n",
       "      <td>49</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>16029.0</td>\n",
       "      <td>38</td>\n",
       "      <td>274</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>16250.0</td>\n",
       "      <td>260</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>17511.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1076</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>17548.0</td>\n",
       "      <td>217</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>13705.0</td>\n",
       "      <td>7</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>13747.0</td>\n",
       "      <td>373</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>13408.0</td>\n",
       "      <td>1</td>\n",
       "      <td>501</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>13767.0</td>\n",
       "      <td>1</td>\n",
       "      <td>399</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>17924.0</td>\n",
       "      <td>0</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>13448.0</td>\n",
       "      <td>16</td>\n",
       "      <td>199</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>15862.0</td>\n",
       "      <td>7</td>\n",
       "      <td>147</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>15513.0</td>\n",
       "      <td>30</td>\n",
       "      <td>314</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>16218.0</td>\n",
       "      <td>29</td>\n",
       "      <td>90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>14045.0</td>\n",
       "      <td>108</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>14307.0</td>\n",
       "      <td>88</td>\n",
       "      <td>180</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>17908.0</td>\n",
       "      <td>373</td>\n",
       "      <td>58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>17920.0</td>\n",
       "      <td>3</td>\n",
       "      <td>696</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>12838.0</td>\n",
       "      <td>33</td>\n",
       "      <td>123</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3920</th>\n",
       "      <td>13560.0</td>\n",
       "      <td>6</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3921</th>\n",
       "      <td>15539.0</td>\n",
       "      <td>6</td>\n",
       "      <td>41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3922</th>\n",
       "      <td>13017.0</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3923</th>\n",
       "      <td>18174.0</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3924</th>\n",
       "      <td>13153.0</td>\n",
       "      <td>5</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3925</th>\n",
       "      <td>15773.0</td>\n",
       "      <td>5</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3926</th>\n",
       "      <td>17936.0</td>\n",
       "      <td>4</td>\n",
       "      <td>77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3927</th>\n",
       "      <td>16535.0</td>\n",
       "      <td>4</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3928</th>\n",
       "      <td>16988.0</td>\n",
       "      <td>4</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3929</th>\n",
       "      <td>15097.0</td>\n",
       "      <td>3</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3930</th>\n",
       "      <td>18015.0</td>\n",
       "      <td>3</td>\n",
       "      <td>46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3931</th>\n",
       "      <td>16597.0</td>\n",
       "      <td>3</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3932</th>\n",
       "      <td>13790.0</td>\n",
       "      <td>3</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3933</th>\n",
       "      <td>14219.0</td>\n",
       "      <td>3</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3934</th>\n",
       "      <td>17383.0</td>\n",
       "      <td>3</td>\n",
       "      <td>51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3935</th>\n",
       "      <td>15992.0</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3936</th>\n",
       "      <td>15318.0</td>\n",
       "      <td>3</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3937</th>\n",
       "      <td>17914.0</td>\n",
       "      <td>3</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3938</th>\n",
       "      <td>16528.0</td>\n",
       "      <td>3</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3939</th>\n",
       "      <td>16569.0</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3940</th>\n",
       "      <td>14578.0</td>\n",
       "      <td>2</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3941</th>\n",
       "      <td>16000.0</td>\n",
       "      <td>2</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3942</th>\n",
       "      <td>15195.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3943</th>\n",
       "      <td>14087.0</td>\n",
       "      <td>2</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3944</th>\n",
       "      <td>14204.0</td>\n",
       "      <td>1</td>\n",
       "      <td>44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3945</th>\n",
       "      <td>15471.0</td>\n",
       "      <td>1</td>\n",
       "      <td>77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3946</th>\n",
       "      <td>13436.0</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3947</th>\n",
       "      <td>15520.0</td>\n",
       "      <td>1</td>\n",
       "      <td>18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3948</th>\n",
       "      <td>13298.0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3949</th>\n",
       "      <td>14569.0</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3950 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      CustomerID  Recency  Frequency\n",
       "0        17850.0      301        312\n",
       "1        13047.0       31        196\n",
       "2        13748.0       95         28\n",
       "3        15100.0      329          6\n",
       "4        15291.0       25        109\n",
       "5        14688.0        7        359\n",
       "6        17809.0       15         64\n",
       "7        15311.0        0       2491\n",
       "8        14527.0        2       1011\n",
       "9        16098.0       87         67\n",
       "10       18074.0      373         13\n",
       "11       17420.0       49         30\n",
       "12       16029.0       38        274\n",
       "13       16250.0      260         24\n",
       "14       17511.0        2       1076\n",
       "15       17548.0      217         17\n",
       "16       13705.0        7         28\n",
       "17       13747.0      373          1\n",
       "18       13408.0        1        501\n",
       "19       13767.0        1        399\n",
       "20       17924.0        0         38\n",
       "21       13448.0       16        199\n",
       "22       15862.0        7        147\n",
       "23       15513.0       30        314\n",
       "24       16218.0       29         90\n",
       "25       14045.0      108          6\n",
       "26       14307.0       88        180\n",
       "27       17908.0      373         58\n",
       "28       17920.0        3        696\n",
       "29       12838.0       33        123\n",
       "...          ...      ...        ...\n",
       "3920     13560.0        6         33\n",
       "3921     15539.0        6         41\n",
       "3922     13017.0        6          1\n",
       "3923     18174.0        6          1\n",
       "3924     13153.0        5         15\n",
       "3925     15773.0        5         10\n",
       "3926     17936.0        4         77\n",
       "3927     16535.0        4         31\n",
       "3928     16988.0        4          7\n",
       "3929     15097.0        3         25\n",
       "3930     18015.0        3         46\n",
       "3931     16597.0        3          7\n",
       "3932     13790.0        3         45\n",
       "3933     14219.0        3          7\n",
       "3934     17383.0        3         51\n",
       "3935     15992.0        3          3\n",
       "3936     15318.0        3         33\n",
       "3937     17914.0        3         80\n",
       "3938     16528.0        3         17\n",
       "3939     16569.0        2          5\n",
       "3940     14578.0        2         24\n",
       "3941     16000.0        2          9\n",
       "3942     15195.0        2          1\n",
       "3943     14087.0        2         70\n",
       "3944     14204.0        1         44\n",
       "3945     15471.0        1         77\n",
       "3946     13436.0        1         12\n",
       "3947     15520.0        1         18\n",
       "3948     13298.0        0          2\n",
       "3949     14569.0        0         12\n",
       "\n",
       "[3950 rows x 3 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "frequency = uk.groupby('CustomerID').InvoiceDate.count().reset_index()\n",
    "frequency.columns = ['CustomerID','Frequency']\n",
    " \n",
    "user = pd.merge(user, frequency, on='CustomerID')\n",
    "#user.drop(['Frequency_x','Frequency_y'],axis=1,inplace=True)\n",
    "user"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1b9a4e31ef0>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.distplot(user.Frequency)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Revenue**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "uk['Revenue'] = uk['UnitPrice'] * uk['Quantity']\n",
    "revenue = uk.groupby('CustomerID').Revenue.sum().reset_index()\n",
    "\n",
    "user = pd.merge(user, revenue, on='CustomerID')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1b9a4f51e10>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.distplot(user.Revenue)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "user['CustomerID'] = user.CustomerID.astype('str')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Kmeans聚类**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#肘部法则选取聚类个数\n",
    "from sklearn.metrics import silhouette_score\n",
    "distortions = []\n",
    "silhouette_scores =[]\n",
    "for i in range(1,11):\n",
    "    km = KMeans(n_clusters=i,\n",
    "                init = 'random',\n",
    "                random_state=42\n",
    "               )\n",
    "    km.fit(user)\n",
    "    #silhouette_scores.append(silhouette_score(RFM, kmeans_per_i.labels_))\n",
    "    distortions.append(km.inertia_)\n",
    "plt.plot(range(1,11),distortions,marker='o')\n",
    "plt.xlabel('Number of clusters')\n",
    "plt.ylabel('Dsitortion')\n",
    "plt.show()\n",
    "#plt.twinx()\n",
    "#plt.plot(range(1,11),silhouette_scores,marker='o',color='r')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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umXUtS4iIgVlyZLq8fS33grj5yNGhK73ww/P3vF0da2LiIgQerEuuihsMvPyy3DmmbBgAXz3u7DDDnDuubBwYf2TSrONErmIiBQkMygrg5tuguXLq8fTb789FG3ZZZewCVO2TyJVIhcRkYJXczz9n/8MyXz77eHSS0NFwv33h9tuC1sVZxslchERkRo6dIDTTgtFWxYvDitCKivDdrrduoXNZubNg2++STrSQIlcRESkHjXH0196KSTz+fPD5LgddghV6l56qXo8febMsNdDixbhz5kz448xI7PWzaycUA71MXef3MB1XYHH3X3Phr5Ps9ZFRCQp33wDTzwRZr0//DD8+9+w887Qvz889tim1f+q6iCkY3loYrPWzWwkUOTug4HeZtavgcuvA9rEHZOIiEhzFReHcqr33x/Wp992W+hynz178xK+a9eGojhxykTX+jBgVur4SWBIXReZ2UHAl8AnGYhJRERki3XsCKefHpav1bf169Kl8caQiUTeDlieOl4JdK19gZm1Ai4FLqzvS8xsnJlVmFlFZWVlLIGKiIg0V48eTTufLplI5Guo7i5vX889LwRudfd6J/a7+3R3L3P3spKSkhjCFBERab6k6iBkIpEvoro7fQCwuI5rDgbOMbP5wEAzuz0DcYmIiKRNUnUQYp+1bmbbAM8BfwCOAEYB33P3S+q5fr67D2voOzVrXURECk19s9Zbxn1jd19tZsOAQ4Br3f0T4LUGrh8Wd0wiIiL5IvZEDuDuq6ieuS4iIiJpop3dREREclhO1iM3s0pgSZq/dltgRZq/MxvpOfOLnjN/FMIzgp5zS/R0982WbeVkIo+DmVXUNYkg3+g584ueM38UwjOCnjMO6loXERHJYUrkIiIiOUyJvNr0pAPIED1nftFz5o9CeEbQc6adxshFRERymFrkBcLMOpvZIWa2bdKxiIhI+hR0IjezDmb2ezN70sweSlVhyztm1gl4FBgEPGNmeV11xsy6mtlfko4jLmbW0syWmtn81GuPpGOKk5ndambDk44jLmZ2Vo1/l6+a2a+TjikOZtbJzH6XqmKZl88IYGa9zOwxM3vOzK7PxD0LOpEDo4Gp7n4ooQ764QnHE5f+wPnuPgV4Atgr4Xjidh3VFffyUX/gXncflnq9nnRAcTGzoUA3d5+XdCxxcfdpVf8uCXUpbks4pLiMAWamlmRtbWb5ugTtGuBKdx8K7JjaojxWBZ3I3f1Wd38q9bYE+DTJeOLi7gvc/c9mtj+hVf5i0jHFxcwOAr4k/I9ZvtoHONrMXjKzcjPLyFbLmWZmxYSkttjMvpt0PHEzs+5AV3fP14pQnwG7m1lHYCfgo4TjicvOwCup40+BDnHfsKATeRUzGwx0cvc/Jx1LXMzMgBOBVcA3CYcTi9TQyKWE+vb57GXgYHcfBBQDRyYcT1zGAn8DrgUGmdn4hOOJ2znAtKSDiNHzQE/gPODvwMpkw4nNbOCy1HDQ4YTKn7Eq+ERuZp2BW4AfJh1LnDw4B/grMNW3H08AAAJ1SURBVCLpeGJyIXCru/8r6UBi9ld3/0fquALol2QwMdoTmJ6qmPhb4MCE44mNmbUgPN/8hEOJ02XAme5+BfAWcGrC8cTC3ScDvwdOB2a4+5q471nQiTzVgnsAmOju6d67PWuY2QQzG5t62xHI10R3MHCOmc0HBprZ7QnHE5e7zWyAmRUBx9BAWeAc9x7QO3VcRvrrK2STocBCz+/1wJ2APVJ/b/cG8vlZXwV6AFMzcbOCXkduZmcBV1H9i3Cau9+fYEixSM1anwW0Bt4AzsnzXxiY2fx8rW1vZrsD9wAGPOLuFyccUizMbGvgDqArYQjheHdfnmxU8TCzq4AKd5+TdCxxMbNBwJ2E7vUXgWMz0VpNgpldDrzn7ndn5H55/vtcREQkrxV017qIiEiuUyIXERHJYUrkIiIiOUyJXEREJIcpkYuIiOQwJXIREZEcpkQuIo0ys2vM7KnGrxSRTFMiF5EoBhJ2qxKRLKNELiJRDADytsa7SC5TIheRBplZN8I2qa+m3rczs/vM7BUzK00yNhFRIheRxu0JfAW8bWbfAl4C1gP7ufviJAMTESVyEWncQOB1QqW1F4Db3P1kd/8q2bBEBFQ0RUQaYWb3A4cARcAId1+QcEgiUoNa5CLSmIHAHEIp0S4JxyIitahFLiL1MrO2wBfAPkA/YDqwv7u/kmhgIvIfLZMOQESy2gDAgTfc/WUz2xWYZ2aD3H15wrGJCOpaF5GGDQDerTGx7efAn4BHUq11EUmYutZFRERymFrkIiIiOUyJXEREJIcpkYuIiOQwJXIREZEcpkQuIiKSw5TIRUREcpgSuYiISA5TIhcREclh/wcFxdGyWebrYgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 576x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.metrics import silhouette_score\n",
    "kmeans_per_k = [KMeans(n_clusters=k, random_state=42).fit(user)\n",
    "                for k in range(1, 10)]\n",
    "inertias = [model.inertia_ for model in kmeans_per_k]\n",
    "silhouette_scores = [silhouette_score(user, model.labels_)\n",
    "                     for model in kmeans_per_k[1:]]\n",
    "plt.figure(figsize=(8, 3))\n",
    "plt.plot(range(2, 10), silhouette_scores, \"bo-\")\n",
    "plt.xlabel(\"$k$\", fontsize=14)\n",
    "plt.ylabel(\"Silhouette score\", fontsize=14)\n",
    "#plt.axis([1.8, 8.5, 0.55, 0.7])\n",
    "#save_fig(\"silhouette_score_vs_k_plot\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "综合选择3类作为聚类中心"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "#分高中低价值用户\n",
    "rfm_scale = StandardScaler().fit_transform(user)\n",
    "kmeans = KMeans(n_clusters=3,random_state=42)\n",
    "kmeans.fit(rfm_scale)\n",
    "user['prediction'] = kmeans.predict(rfm_scale)\n",
    "count = user.groupby(['prediction'])['prediction'].agg('count')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "kmeans.cluster_centers_\n",
    "label = list(kmeans.labels_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"5\" halign=\"left\">Recency</th>\n",
       "      <th colspan=\"5\" halign=\"left\">Frequency</th>\n",
       "      <th colspan=\"5\" halign=\"left\">Revenue</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>min</th>\n",
       "      <th>max</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>count</th>\n",
       "      <th>min</th>\n",
       "      <th>max</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>count</th>\n",
       "      <th>min</th>\n",
       "      <th>max</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>prediction</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1010</td>\n",
       "      <td>130</td>\n",
       "      <td>373</td>\n",
       "      <td>242.980198</td>\n",
       "      <td>68.377368</td>\n",
       "      <td>1010</td>\n",
       "      <td>1</td>\n",
       "      <td>312</td>\n",
       "      <td>27.734653</td>\n",
       "      <td>32.531252</td>\n",
       "      <td>1010</td>\n",
       "      <td>-4287.63</td>\n",
       "      <td>21535.90</td>\n",
       "      <td>433.216991</td>\n",
       "      <td>902.672841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2930</td>\n",
       "      <td>0</td>\n",
       "      <td>155</td>\n",
       "      <td>38.617065</td>\n",
       "      <td>34.598632</td>\n",
       "      <td>2930</td>\n",
       "      <td>1</td>\n",
       "      <td>1677</td>\n",
       "      <td>104.260410</td>\n",
       "      <td>141.247687</td>\n",
       "      <td>2930</td>\n",
       "      <td>-1165.30</td>\n",
       "      <td>65892.08</td>\n",
       "      <td>1874.526585</td>\n",
       "      <td>3949.102765</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>10</td>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "      <td>1.700000</td>\n",
       "      <td>2.162817</td>\n",
       "      <td>10</td>\n",
       "      <td>351</td>\n",
       "      <td>7983</td>\n",
       "      <td>2838.300000</td>\n",
       "      <td>2416.712370</td>\n",
       "      <td>10</td>\n",
       "      <td>11713.85</td>\n",
       "      <td>256438.49</td>\n",
       "      <td>83796.134000</td>\n",
       "      <td>77274.250599</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           Recency                                  Frequency             \\\n",
       "             count  min  max        mean        std     count  min   max   \n",
       "prediction                                                                 \n",
       "0             1010  130  373  242.980198  68.377368      1010    1   312   \n",
       "1             2930    0  155   38.617065  34.598632      2930    1  1677   \n",
       "2               10    0    7    1.700000   2.162817        10  351  7983   \n",
       "\n",
       "                                     Revenue                       \\\n",
       "                   mean          std   count       min        max   \n",
       "prediction                                                          \n",
       "0             27.734653    32.531252    1010  -4287.63   21535.90   \n",
       "1            104.260410   141.247687    2930  -1165.30   65892.08   \n",
       "2           2838.300000  2416.712370      10  11713.85  256438.49   \n",
       "\n",
       "                                        \n",
       "                    mean           std  \n",
       "prediction                              \n",
       "0             433.216991    902.672841  \n",
       "1            1874.526585   3949.102765  \n",
       "2           83796.134000  77274.250599  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "medidas=['count','min', 'max', 'mean','std']\n",
    "\n",
    "final = user.groupby(['prediction'])['Recency','Frequency','Revenue'].agg(medidas)\n",
    "final"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "ax=plt.subplot(111,projection='3d')\n",
    "ax.scatter(user.loc[:,'Recency'],user.loc[:,'Frequency'],user.loc[:,'Revenue'],c=label)\n",
    "ax.set_xlabel('R')\n",
    "ax.set_ylabel('F')\n",
    "ax.set_zlabel('M')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "高价值：提高留存率  \n",
    "中等价值：提高留存率 + 增加Frequency  \n",
    "低价值：增加Frequency  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
